home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga CD-ROM Collection
/
Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso
/
cactus
/
49
/
progs
/
arq
/
upd.dok
< prev
next >
Wrap
Text File
|
1992-07-28
|
13KB
|
323 lines
CACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactus
U U
S UPD S
E *** E
R Übersetzt 7/92 von C.A.C.T.U.S. (Guido Coenen) R
S S
cactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUS
Release 1.00
Der minimal player daemon - upd
===============================
© 1991 Jonas Petersson & Absolut Software (alias Sirius Soft)
Einführung:
===========
Wäre es nicht schön, einen Hintergrundprozess zu haben, der auf Wunsch
beliebige Sounds abspielt, statt diese ganze Herumfummelei mit dem
audio.device und so weiter am Hals zu haben? Das Hintergrundprogramm
muß natürlich klein sein und auch ganz große Samples abspielen können.
Das Programm sollte von überall aus ansprechbar sein - sogar von
Skripts aus.
Schwierig, aber machbar.
Das Programm ermöglicht es, Deine Lieblingssounds in eine Konfigurations-
datei aufzunehmen und vernünftige Programme werden diese neuen Sounds
berücksichtigen. Das Programm hat sogar eine ARexx-Unterstützung -
um ehrlich zu sein, ist das die einzige Art, wie upd genutzt werden
kann...
Die vorliegende Version arbeitet ganz gut in der beabsichtigten Weise.
Aufruf:
=======
[run] upd [Puffergröße [IDfile]]
Das "RUN" ist natürlich optional, aber daemons sollte wirklich bereits
im Hintergrund laufen, solange Du nicht die debugging-Informationen
mitbekommen möchtest. "Puffergröße" ist die Menge an Chip-Memory, die
jeder der vier Puffer beim Spielen verbrät. Die Puffer werden bereits
beim Programmaufruf angelegt, um sicherzustellen, daß jederzeit ein
Sound abgespielt werden kann - solange die Audio-Kanäle nicht belegt
sind...
Voreingestellt ist ein Wert von 1024; ein kleinerer Wert als 64 führt
zur Benutzung dieser Voreinstellung. Ich habe mal gehört, daß es Leute
gibt, die ohne einen Puffer von 1K nichts vernünftiges rausbringen -
bin ich wirklich der einzige hier mit einer Festplatte, die schnell
genug ist?
Achtung: Mach den Puffer nicht größer, als er wirklich benötigt wird.
Ein großer Puffer bedeutet, daß der Sound mit einer entsprechenden
Verzögerung abgespielt wird, da der große Puffer natürlich vorher
gefüllt werden muß!
Falls der parameter IDfile angegeben wurde, wird die angegebene Datei
anstelle des voreingestellten s:upd.IDs benutzt. Um diese Fähigkeit
zu nutzen, mußt Du die Puffergröße entsprechend setzen. Ich stimme zu,
daß das ein wenig unschön ist, aber die meisten Leute werden das sowieso
nicht in Anspruch nehmen.
Die obige Syntax gibt natürlich, wie Du bestimmt erkannt hast, keinen
Laut von sich. Einmal gestartet, kann man upd nur über ARexx Befehle
erteilen. Ich habe sogar das ganze BREAK-Zeug entfernt, das noch aus
Zound stammte, weil es passieren kann, daß ARexx nach einer derartigen
Unterbrechung ewig auf Antwort wartet.
upd kennt zur Zeit vier Befehle:
Datei Pfad [Optionen] [weitererPfad [Optionen]]
id id-in-s:upd.IDs
rescan neue-id-datei
exit
Nun, tatsächlich gibt es sogar noch einen weiteren Befehl: ´Can it,
Marvin´. Das unterbricht den aktuellen Sound sofort. Um ehrlich zu
sein, unterbricht JEDER Befehl den aktuellen Sound - falls der neue
Sound existiert, wird er abgespielt, andernfalls stoppt upd nur den
aktuellen Sound.
Sie vorsichtig mit dem RESCAN-Befehl - falls es Schwierigkeiten mit
dem Laden der Datei gibt, gehen die alten IDs verloren...
Die Optionen sind dieselben wie bei Zound außer der Option "-n", die
es hier nicht gibt (sag mir, daß Du es brauchst,und ich bau´s ein, hehe).
Hier die Liste:
-r rate Die Abspielgeschwindigkeit des gesampelten Sound.
Voreingestellt ist die Geschwindigkeit im Kopf der
IFF-8SVX-Datei oder, falls es sich um ein RAW-Format
handelt, 310. Das ist zumeist plausibel - die meisten
RAW-Samples sind entweder mit 310 oder 155 abzuspielen.
Kleinere Zahlen spielen den Sample schneller.
-v volume (Lautstärke) Eine Zahl von 0 bis 64, wobei 64 der
Maximalwert und gleichzeitig Voreinstellung ist.
-s start (Anfang) Der Offset, ab dem der Sample gespielt werden
soll. Voreinstellung 0.
-l length (Länge) Die Länge des abzuspielenden Stückes, falls nur
ein Teil abgespielt werden soll. Voreingestellt ist die
volle Länge des Samples. Sei vorsichtig mit diesen beiden
Angaben, sonst gibt´s merkwürdige Ergebnisse.
-c cycles (Wiederholungen) Wie oft jeder Puffer abgespielt werden
soll. Voreinstellung 1. Nicht sehr nützlich, aber es gibt
einen hübschen "Quietsch-Effekt", wenn cycles auf 2
gesetzt und die Geschwindigkeit verdoppelt wird...
-d Zeigt Debug-Informationen. Achtung: Die Ausgabe erscheint
im Standard-Ausgabefenster des Programmes und NICHT in
dem Fenster, von dem Du aus das Programm gestartet hast!
-L Der Sample wird nur im linken Lautsprecher abgespielt. Bei
Stereo-Samples wird nur der Sample für den linken Kanal
genutzt.
-R Wie '-L', aber für den rechten Lautsprecher.
-S Abgespielt wird in beiden Lautsprechern, auch wenn es sich
um einen Mono-Sample handelt. Voreinstellung ist bei
8SVX-Samples die dortige Angabe im Dateikopf oder bei
RAW-Samples die Option -L.
Anwendungsbeispiel (z.B. von WShell aus):
"address play file 'sounds:chopper'
"address play id 2001
"address play rescan 'ram:upd.IDs'
"address play exit
Anmerkung: ARexx konvertiert normalerweise alles in Großschrift und
könnte eventuell versuchen, Rechenoperationen usw. mit Dateinamen zu
versuchen. Darum ist es eine gute Idee, alle Pfadangaben, IDs usw.
in einzelne Anführungszeichen (´) zu setzen. Falls Du den upd-Port
direkt ansprechen möchtest, dann benutze den Namen "PLAY" (in
Großbuchstaben).
Anmerkung 2: Falls Du es wirklich einmal eilig hast, upd loszuwerden,
dann gibt es noch folgende Möglichkeit:
1) Schicke eine ungültige ARexx-Nachricht, um den Sound zu unterbrechen.
2) Schicke ein break C an upd - break arbeitet, solange upd nicht
aktiv ist oder
schicke die EXIT-Nachricht.
Letzteres klingt viel einfacher als ersteres, solange Du nicht (wie
ich) ein DisplayBeep() hast, das per upd angesteuert wird. In diesem
Falle ist es wesentlich einfacher, ein DisplayBeep() und break C zu
produzieren. Die Reihenfolge ist nicht wichtig, da das break in eine
Warteschlange gestellt wird.
Hinweise:
=========
Der Start von upd vom SOUNDS: Verzeichnis aus ist ein guter Weg, nicht
jedesmal beim Start eines Samples den vollen Pfadnamen eintippen zu
müssen. Das Programm kennt keine Methode herauszufinden, von wo die
Nachricht geschickt wurde und sucht deshalb bei Dateinamen ohne Pfad-
angaben im aktuellen Verzeichnis.
Dateien:
========
s:upd.IDs
Diese Datei enthält die IDs (Kennungen) Deiner Lieblings-Samples wie
eine Datenbank und ist einfach editierbar. Dateiformat:
# Zeilen, die mit '#' beginnen, sind Kommentare.
# Id list for micro player daemon
# Created 910201 Jonas Petersson (zaphod@magrathea.indic.se)
# These sounds could be called for at certains situation
# On severe error
BUG sounds:explosion -S
# When asked for confirmation
CONFIRM sounds:PressLeftMouseButton -L
# Minor trouble
ERROR sounds:ImSorryDaveImAfraidICantDoThat -R
# Going down...
GURU sounds:RoysDeathMonologueFromBladerunner -S
# Personal shortcuts/favourites
2001 sounds:openpod -L sounds:hal -R
Das Entfernen von Einträgen resultiert in fehlendem Sound (wobei upd
dazu in der Standardausgabe etwas dazu anmerken wird, solange die
Standardausgabe nicht umgeleitet wird). Denke daran daß ARexx alles
in Großschrift umwandelt, solange Du es nicht in Anführungszeichen setzt!
Füge hinzu, was immer Du möchtest. Könnte hübsche Ergebnisse bringen.
Vorschläge werden gerne entgegengenommen. Ein Beispiel für Programme,
die upd nutzen, ist Arq von Mjl. Einzelheiten sind der Anleitung zu
Arq zu entnehmen.
Anmerkung: Es IST möglich, in den IDs Leerzeichen, Kleinschreibung etc.
zu verwenden, aber das könnte Verwirung erzeugen. Sieh Dich vor!
Anmerkung 2: Die ID-Datei wird nur beim Erstaufruf von upd geladen.
Bei Änderungen ist upd erneut aufzurufen.
Returncodes:
============
Falls der ARexx-Befehl den Return-Code von 20 zurückgibt, gibt der
sekundäre Returncode den Grund des Fehlschlages an:
10 Kanäle konnten nicht belegt werden.
17 Konnte s:upd.IDs auf Anfrage nicht öffnen.
18 Gesuchte ID nicht gefunden.
19 Probleme beim Lesen einer neuen ID-Datei.
20 Fehler beim Erkennen der Optionen.
21 Datei mit Sample kann nicht geöffnet werden.
22 Datei ist IFF-Format, aber nicht FORM 8SVX.
23 Fehlerhafte IFF-Datei.
24 Fehlerhafte CHAN-Länge.
25 Fehlerhafte VHDR-Länge.
26 Kann Datei nicht zum zweiten Mal öffnen. (Für Stereo)
30 Kann nicht rückwärts abspielen. (Ungültige Optionen)
31 Kann IOAudio-Strukturen nicht allozieren.
32 Lann Ports für Ausgabekanäle nicht öffnen.
Die Unterbrechung durch das Abspielen eines anderen Samples ist nicht
als Fehler zu betrachten.
Zukünftige Verbesserungen:
==========================
Vielleicht automatische Entfernung aus dem CLI-Fenster (hat mit Aztec 5.0a
nicht so recht geklappt, und mit 5.0d hab ichs noch nicht so richtig
probiert).
Ansonsten vielleicht nicht viel mehr - es ist doch nur ein einfacher
Soundplayer für kleinere Hintergrundaufgaben, damit andere Programme
nicht nur DisplayBeep() nutzen.
Ich sehe das Programm am liebsten als eine Art Gegenstück zu SPEAK: -
falls Du mehr möchtest, möchtest Du es vielleicht interaktiv. Hmm,
das wäre ein Gedanke - ein SOUND: device...)
Mögliche Probleme:
==================
1. Falls der abzuspielende Sample auf einer Diskette oder einer sehr
langsamen Festplatte ist und die Abspielrate die Ladegeschwindigkeit
übersteigt, kann es zu Abspielpausen kommen...
Abhilfe: Der von upd zu verwendende Speicherplatz kann nun bei Aufruf
angegeben werden, wie z.B. in 'upd 2000'. Ein großer Puffer führt
allerdings beim Aufruf des Samples zu einer längeren Pause, bis Du
das erste Geräusch hörst - der Puffer muß nämlich erst mal gefüllt
werden.
2. Stereosamples und gepackte Samples sind noch nicht unterstützt; es
gibt noch Ladeprobleme. Benutze dafür stattdessen Zound.
Abhilfe: Stereo funktioniert nun (es hat früher auch schon von RAM: aus
funktioniert, aber ich hatte es in der Vorversion noch nicht
zugelassen). Gepackte Samples wären ebenfalls einfach möglich, aber
wer arbeitet schon damit? Falls Du einen Fibonachi-gepackten Sample
hast - BITTE schick ihn mir, da ich nicht die Geduld habe, einen
von Hand nachzubauen...
3. Das Programm könnte sich aufhängen, falls jemand einen Ausgabekanal
klaut.
Abhilfe: Ich habe in Version 0.99 noch nicht alle möglichen Überprüfungen
eingebaut - jetzt schon (hoffe ich!).
4. -s und -l wurden in Version 0.99 nicht benutzt - jetzt schon.
Vielen Dank an mjl@alison.at für die Idee.
Vertrieb
========
UPD ist kein Public Domain. Ein Freund riet mir, es stattdessen als
"Frei vertreibbar urhebergeschützt" zu bezeichnen. Das trifft es
ganz gut. Falls Du es mit einem kommerziellen Programm vertreiben
möchtest, dann tue dieses, aber sende mir auf jeden Fall ein
Originalexemplar des komerziellen Produktes.
Wie üblich, darf Fred Fish das Programm selbstverständlich in seine
Serie aufnehmen.
Quellcode? Glaubst Du wirklich, es gäbe noch etwas zu verbessern???
Tja, schick mir eine Nachricht, und ich werde darüber nachdenken...
Jonas 'Zaphod' Petersson
Albrektsvagen 113A
S-603 53 Norrkoping
SCHWEDEN
Telefon: +46 11 162517
zaphod@magrathea.indic.se /* Zuhaus */
zap@indic.se /* Im Büro */
zaphod@slaka.sirius.se /* Absolute software */
Fühle Dich ermutigt, Kommentare, Fehlerbeschreibungen (häh?), Geld,
Coke, Bier, Mädels (!) zu schicken.
Ein einfaches "Hey, ich mag Dein Programm!" ist genausogut wie ein paar
Piepen - ich hab das Programm geschrieben, weil ich es brauchte, und
nicht, um Geld damit zu machen. Bis dann!